package cn.gemiman.daoyi.module.iot.controller.admin.jhlequipmentdevice.vo;

import cn.gemiman.daoyi.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

import static cn.gemiman.daoyi.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 精华隆设备信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class JhlEquipmentDevicePageReqVO extends PageParam {

    @Schema(description = "布撤防状态", example = "2")
    private Integer armStatus;

    @Schema(description = "设备类型", example = "1")
    private String deviceType;
    @Schema(description = "设备类型(多个)")
    private List<String> deviceTypes;

    @Schema(description = "卡号", example = "28565")
    private Integer deviceIccid;

    @Schema(description = "在线状态", example = "2")
    private Integer onlineStatus;

    @Schema(description = "场所ID", example = "26242")
    private Integer placeId;

    @Schema(description = "设备名称", example = "王五")
    private String deviceName;

    @Schema(description = "父设备ID", example = "18424")
    private Integer parentId;

    @Schema(description = "协议类型", example = "1")
    private Integer reportType;

    @Schema(description = "公司主域")
    private String mainCode;

    @Schema(description = "离线时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastOfflineTime;

    @Schema(description = "设备序列号")
    private String deviceIdentifier;

    @Schema(description = "MAC")
    private String mac;

    @Schema(description = "公司子域")
    private Integer subCode;

    @Schema(description = "上线时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastOnlineTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
